
class FVue {
    constructor(options) {
        this.$el = options.el,
            this.$data = options.data,
            this.$options = options
        // 如果存在template模板则开始编译
        if (this.$el) {
            // 1、对数据进行劫持
            new Observer(this.$data)
            // 数据代理
            this.proxy(this.$data)
            // 2、创建解析器 Compile
            new Compile(this.$el, this)
        }
    }
    proxy(data) {
        for (const key in data) {
            Object.defineProperty(this, key, {
                get () {
                    return data[key]
                },
                set (newValue) {
                    data[key] = newValue
                }
            })
        }
    }
}
